package com.gqz.patrol.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gqz.common.core.domain.RequestForm;
import com.gqz.patrol.app.entity.EnPatrolTaskEntity;
import com.gqz.patrol.vo.*;
import jakarta.servlet.http.HttpServletResponse;

import java.util.List;


/**
 * 能源-巡视工单表
 */
public interface IEnPatrolTaskService extends IService<EnPatrolTaskEntity> {

    List<EnPatrolTaskVo> getById(String id);

    List<EnPatrolTaskVo> getByTaskNo(String taskNo);

    Page<EnPatrolTaskVo> page(RequestForm<EnPatrolTaskVo> requestForm);

    Long count(RequestForm<EnPatrolTaskVo> requestForm);

    int insert(List<EnPatrolTaskVo> forms);

    int update(List<EnPatrolTaskVo> forms);

    /**
     * 根据任务编码获取设备列表
     *
     * @param taskNo 任务编码
     * @return
     */
    List<EnPatrolTaskEquipVo> getTaskEquipList(String taskNo);

    /**
     * 根据任务编码获取缺陷隐患列表
     *
     * @param taskNo 任务编码
     * @return
     */
    List<EnStockEquipDefectVo> getTaskDefectList(String taskNo);

    /**
     * 根据任务编码获取操作流程
     *
     * @param taskNo 任务编码
     * @return
     */
    EnPatrolTaskProcessVo getTaskProcess(String taskNo);

    /**
     * 根据任务编码获取已处理缺陷隐患列表
     *
     * @param handleTaskNo 任务编码
     * @return
     */
    List<EnStockEquipDefectVo> getTaskHandleDefectList(String handleTaskNo);

    /**
     * 保存任务操作
     *
     * @param taskVo        taskVo
     * @param optStatus     optStatus
     * @param optStatusName optStatusName
     */
    void saveTaskOperate(EnPatrolTaskVo taskVo, String optStatus, String optStatusName);

    /**
     * 将巡视任务导出成Excel
     *
     * @param resp
     * @param requestForm
     */
    void exportExcel(HttpServletResponse resp, RequestForm<EnPatrolTaskExcelVo> requestForm);

    List<EnTjVo> getGdStatusXx(String sdate, String edate);
}
